package com.sihai.ehr.service;

import com.sihai.core.Limit;
import com.sihai.core.LimitedList;
import com.sihai.core.Sorter;
import com.sihai.ehr.model.biz.SalaryStructure;
import com.sihai.ehr.model.biz.SalaryStructureDetail;
import com.sihai.ehr.model.sys.SalaryFrameworkEnum;

/**
 * 社保管理服务
 * 
 * @author henry
 * 
 */
public interface SalaryStructService {
	/**
	 * 根据社保编号获取社保信息
	 * 
	 * @param id
	 * @return
	 */
	SalaryStructure get(Long id);

	/**
	 * 保存社保信息
	 * 
	 * @param structure
	 */
	void save(SalaryStructure structure);

	/**
	 * 删除社保信息
	 * 
	 * @param ids
	 */
	void deleteStructures(String ids);

	/**
	 * 获取薪资框架细节
	 * 
	 * @param id
	 * @param frameworkEnum
	 * @return
	 */
	SalaryStructureDetail getStructureDetailByIdAndLnkType(Long id, SalaryFrameworkEnum frameworkEnum);

	/**
	 * 删除社保项目细节
	 * 
	 * @param structId
	 */
	void deleteStructureDetails(Long structId);

	/**
	 * 获取社保信息列表
	 * 
	 * @param organizationId
	 * @param limit
	 * @param sorter
	 * @return
	 */
	LimitedList<SalaryStructure> find(Long organizationId, Limit limit, Sorter sorter);

	LimitedList<Object[]> findForGrade(Long organizationId, Limit limit, Sorter sorter)throws Exception;
}
